package com.tos.second.service;

import com.tos.second.entity.ChatMessage;

import java.util.List;

/**
 * 聊天服务接口
 */
public interface ChatService {
    
    /**
     * 保存消息
     * @param message 消息对象
     */
    void saveMessage(ChatMessage message);
    
    /**
     * 标记消息为已读
     * @param messageId 消息ID
     */
    void markAsRead(Long messageId);
    
    /**
     * 获取用户未读消息
     * @param userId 用户ID
     * @return 未读消息列表
     */
    List<ChatMessage> getUnreadMessages(Long userId);
    
    /**
     * 更新用户在线状态
     * @param userId 用户ID
     * @param online 是否在线
     */
    void updateUserOnlineStatus(Long userId, boolean online);
    
    /**
     * 查询用户是否在线
     * @param userId 用户ID
     * @return 是否在线
     */
    boolean isUserOnline(Long userId);
    
    /**
     * 获取历史消息
     * @param senderId 发送者ID
     * @param receiverId 接收者ID
     * @param page 页码
     * @param size 每页大小
     * @return 历史消息列表
     */
    List<ChatMessage> getHistoryMessages(Long senderId, Long receiverId, int page, int size);
}